package com.yunji.aggregate.model.dto.product;

import com.yunji.common.base.PageDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Package com.yunji.product.dto
 * FileName:	ProductDTO.java
 * Copyright:	Copyright © 2024 云集互联 All Rights Reserved
 * Company:		云集互联
 * @version: 1.0
 * @since: JDK 1.8.0_202
 * Create at:   2024-04-01 01:38:09
 * Description:
 * 商品信息
 * Modification History:
 * Author					Date						Version			Description
 * --------------------------------------------------------------------------------
 * HuaAo				2024-04-01 01:38:09			1.0				1.0 Version
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProductDTO extends PageDTO {
    @ApiModelProperty("商品ID")
    private Long id;

    @ApiModelProperty("所属ID")
    private Long belongId;

    @ApiModelProperty("代理ID")
    private Long agentId;

    @ApiModelProperty("经理用户ID")
    private Long managerId;

    @ApiModelProperty("用户类型")
    private String userType;

    @ApiModelProperty("商品全ID")
    private Long productId;

    @ApiModelProperty("商品名称")
    @Length(message = "商品名称不能超过{max}个字符", max = 30)
    private String productName;

    @ApiModelProperty("商品类型")
    private Integer productType;

    @ApiModelProperty("商品厚度")
    private BigDecimal productHeight;

    @ApiModelProperty("低的成本价")
    private BigDecimal minCostPrice;

    @ApiModelProperty("高的成本价")
    private BigDecimal maxCostPrice;

    @ApiModelProperty("低的销售价")
    private BigDecimal minPrice;

    @ApiModelProperty("高的销售价")
    private BigDecimal maxPrice;

    @ApiModelProperty("低的折扣价")
    private BigDecimal minDiscountPrice;

    @ApiModelProperty("高的折扣价")
    private BigDecimal maxDiscountPrice;

    @ApiModelProperty("低的平台销售价")
    private BigDecimal minPlatformPrice;

    @ApiModelProperty("高的平台销售价")
    private BigDecimal maxPlatformPrice;

    @ApiModelProperty("低的销售量")
    private Integer minSale;

    @ApiModelProperty("高的销售量")
    private Integer maxSale;

    @ApiModelProperty("低的销售额")
    private BigDecimal minSaleAmount;

    @ApiModelProperty("高的销售额")
    private BigDecimal maxSaleAmount;

    @ApiModelProperty("授权类型")
    private Integer grantType;

    @ApiModelProperty("低的授权代理商数量")
    private Integer minGrant;

    @ApiModelProperty("高的授权代理商数量")
    private Integer maxGrant;

    @ApiModelProperty("开始时间")
    private Date startTime;

    @ApiModelProperty("结束时间")
    private Date closeTime;

    @ApiModelProperty("状态")
    private Integer publishStatus;

    @ApiModelProperty("授权状态 代理(0-授权 1-未授权)经理用户(0-可自定义 1-不可自定义)")
    private Integer accreditStatus;

    @ApiModelProperty("商品IDS")
    private List<Long> productIds;

    @ApiModelProperty("订单查询父级所属ID")
    private Long bParentId;

    @ApiModelProperty("订单查询所属ID")
    private Long bBelongId;

    @ApiModelProperty("原价排序 0-正序 1-倒序")
    private Integer priceOrder;

    @ApiModelProperty("销售价排序 0-正序 1-倒序")
    private Integer discountPriceOrder;

    @ApiModelProperty("成本价排序 0-正序 1-倒序")
    private Integer costPriceOrder;

    @ApiModelProperty("销量排序 0-正序 1-倒序")
    private Integer saleOrder;

    @ApiModelProperty("可用库存排序 0-正序 1-倒序")
    private Integer usableStockOrder;
}
